package com.example.seckill.mappstruct;

import com.example.seckill.controller.co.ItemCO;
import com.example.seckill.controller.vo.ItemVo;
import com.example.seckill.domain.ItemDO;
import com.example.seckill.domain.ItemStockDO;
import com.example.seckill.service.model.ItemModel;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface ItemMap {
    ItemMap INSTANCE = Mappers.getMapper(ItemMap.class);

    ItemDO Model2DO(ItemModel itemModel);

    ItemModel DO2Model(ItemDO itemDO);

    List<ItemModel> do2ModelList(List<ItemDO> itemDOS);

    ItemModel CO2Model(ItemCO itemCO);

    @Mapping(target = "startDate",ignore = true)
    @Mapping(target = "promoPrice",ignore = true)
    @Mapping(target = "promoId",ignore = true)
    ItemVo Model2Vo(ItemModel itemModel);

    List<ItemVo> Model2VoList(List<ItemModel> itemModel);

    ItemStockDO model2DO(ItemModel itemModel);

}
